2023/12/231198字符

Map 集合

package main

import "fmt"

func main() {
    var m1 map[int]string
    var m2 = make(map[int]string)
    var m3 = map[string]int{ "age": 18, "length": 180 }
    
    fmt.Println(m1 == nil)  //--> true
    fmt.Println(m2 == nil)  //--> false
    fmt.Println(m3)  //--> map[age:18 length:180]
}

增删改查

package main

import "fmt"

func main() {
    m := make(map[int]string)
    
    m[1] = "1"
    m[2] = "2"
    m[3] = ""

    fmt.Println(m)  //--> map[1:1 2:2 3:]

    for key, _ := range m {
        value, ok := m[key]  // ok: 确实存在,被定义/赋值过
        if value == "" && ok {
            delete(m, key)
        }
    }

    fmt.Println(m)  //--> map[1:1 2:2]
    fmt.Println(len(m))  //--> 2
}

结合 slice

package main

import "fmt"

func main() {
    sli := make([]map[string]string, 0, 3)
    
    sli = append(sli, map[string]string{ "name": "bozai", "age": "18" })
    sli = append(sli, map[string]string{ "name": "heihei", "age": "20" })

    fmt.Println(len(sli))  //--> 2
}
package main

import "fmt"

func main() {
    m := make(map[int]map[string]string)
    
    m[1] = map[string]string{ "name": "bozai", "age": "18" }
    m[2] = map[string]string{ "name": "heihei", "age": "20" }

    fmt.Println(m)
}